package com.redpack.redpost.util.dao;

import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

import com.redpack.redpost.connection.RedpostConexion;
import com.redpack.redpost.util.to.TarifaServicioTo;

public class TarifaAdminDao {
	
	

	public static TarifaServicioTo getTarifaServicio(int cve_servicio  )throws Exception {
		
		Connection conn = RedpostConexion.openConnection( ) ;
		TarifaServicioTo TarifaServicio = new TarifaServicioTo();
		conn.setAutoCommit( false ) ;
		PreparedStatement ps = null ;
		ResultSet rs = null ;
		String sql = "" ;
		
		try{			
			
			sql = "select * from redpost.tbl_tarifa_servicio where cve_servicio="+ cve_servicio +" ;" ;
			ps = conn.prepareStatement( sql ) ;
			rs = ps.executeQuery();
			TarifaServicio.setCont(false);
			
			while (rs.next()) {
				
				//float para representar decimales
				TarifaServicio.setCve_servicio(rs.getInt("cve_servicio"));
				TarifaServicio.setManejoREDPOST(rs.getFloat("ManejoREDPOST"));
				TarifaServicio.setServicio_entrega(rs.getFloat("servicio_entrega"));
				TarifaServicio.setPeso_amparado(rs.getFloat("peso_amparado"));
				TarifaServicio.setSobre_peso_kilo(rs.getFloat("sobre_peso_kilo"));
				TarifaServicio.setSeguro_opcional_transporte_porcent(rs.getFloat("seguro_opcional_transporte_porcent"));
				TarifaServicio.setAlmacenaje_costo(rs.getFloat("almacenaje_costo"));
				TarifaServicio.setAlmacenaje_dias(rs.getInt("almacenaje_dias"));
				TarifaServicio.setDevoluciones_costo(rs.getFloat("devoluciones_costo"));
				TarifaServicio.setAbono(rs.getFloat("abono"));
				TarifaServicio.setConcentrado_mensual_corresp(rs.getFloat("concentrado_mensual_corresp"));
				TarifaServicio.setCargos_adicionales(rs.getFloat("cargos_adicionales"));
				TarifaServicio.setOtros_cargos(rs.getFloat("otros_cargos"));
				TarifaServicio.setCont(true);
			}
			
			conn.commit( ) ;
			ps.close( ) ;
			conn.close( ) ;
			
			return TarifaServicio ;
			
		}catch ( Exception e ) {
			e.printStackTrace( ) ;
			return TarifaServicio = null ;
		} finally {
	        if (conn != null) {
	            conn.close();
	        }
			
		}
		
	}
	
	public static boolean saveTarifaServicio(TarifaServicioTo _TarifaServicio)throws Exception {
		
		boolean res = false ;
		Connection conn = null;
		try
		{	
			conn = RedpostConexion.openConnection( ) ;
			conn.setAutoCommit( false ) ;
			PreparedStatement ps = null ;
			
			String sql = "" ;
				
			sql += "UPDATE redpost.tbl_tarifa_servicio ";
			sql += " SET ";
			sql += " manejoredpost="+ _TarifaServicio.getManejoREDPOST(); 
			sql += " ,servicio_entrega="+ _TarifaServicio.getServicio_entrega();
			sql += " ,peso_amparado="+ _TarifaServicio.getPeso_amparado(); 
			sql += " ,sobre_peso_kilo="+ _TarifaServicio.getSobre_peso_kilo();
			sql += " ,seguro_opcional_transporte_porcent="+ _TarifaServicio.getSeguro_opcional_transporte_porcent(); 
			sql += " ,almacenaje_costo="+ _TarifaServicio.getAlmacenaje_costo();
			sql += " ,almacenaje_dias="+ _TarifaServicio.getAlmacenaje_dias(); 
			sql += " ,devoluciones_costo="+ _TarifaServicio.getDevoluciones_costo() ; 
			sql += " ,abono="+ _TarifaServicio.getAbono(); 
			sql += " ,concentrado_mensual_corresp="+ _TarifaServicio.getConcentrado_mensual_corresp(); 
			sql += " ,cargos_adicionales="+ _TarifaServicio.getCargos_adicionales();
			sql += " ,otros_cargos="+ _TarifaServicio.getOtros_cargos();
			sql += " WHERE cve_servicio="+ _TarifaServicio.getCve_servicio();
			sql += " ;";
			
				
				ps = conn.prepareStatement( sql ) ;
				ps.execute( ) ;

				res = true ;
				
				conn.commit( ) ;
				ps.close( ) ;
				conn.close( ) ;
				
				return res ;
				
			}
			catch ( Exception e ) 
			{
				e.printStackTrace( ) ;			
				return res ;
			} 
			finally 
			{
	            if (conn != null) 
	            {
	                conn.close();
	            }
			}
			
	}
	


}
